package com.lwm.mybatis.custom.demo;

import com.lwm.mybatis.custom.dao.UserDAO;
import com.lwm.mybatis.custom.pojo.User;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import java.io.InputStream;
import java.util.List;

/**
 * @author liweimin
 * @date 2021/6/15 15:32
 * @since
 */
public class Demo {
    public static void main(String[] args) {
        //1.读取配置文件
        InputStream is = Demo.class.getClassLoader().getResourceAsStream("Mybatis-Config.xml");

        //2.创建SqlSessionFactory工厂----->使用了构建者模式
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);
        //3.使用工厂生产sqlSession对象----->使用工厂模式
        SqlSession sqlSession = sqlSessionFactory.openSession();
        //4.使用sqlSession对象创建DAO接口的代理对象----->使用了代理模式
        UserDAO mapper = sqlSession.getMapper(UserDAO.class);
        //5.使用代理对象执行方法
        List<User> userList = mapper.findAll();
        System.out.println(userList);
        System.out.println(mapper.findUserById(41));
        //6.释放连接
        sqlSession.close();
    }
}
